package br.idez.idezJet.control.util;

import javax.servlet.http.HttpSession;

import br.idez.idezJet.integracao.vo.Usuario;

/**
 * @author Moacir
 */
public class GerenciadorSessao {

	/**
	 * abrirSessao
	 * 
	 * @param usuario
	 */
	public static boolean abrirSessao(Usuario usuario) {
		boolean result = false;
		if (usuario != null) {
			HttpSession session = FacesUtil.obterSessao();
			if (session != null) {
				session.setAttribute("uid", usuario.getId());
				result = true;
			}
		}
		return result;
	}

	/**
	 * fecharSessao
	 */
	public static boolean fecharSessao() {
		boolean result = false;
		HttpSession session = FacesUtil.obterSessao();
		if (session != null) {
			session.removeAttribute("uid");
			session.invalidate();
			result = true;
		}
		return result;
	}

	/**
	 * Retorna o usuario da sessão corrente
	 */
	public static Usuario getUserSession() {
		HttpSession session = FacesUtil.obterSessao();
		Usuario usuario = null;
		if (session != null) {
			usuario = (Usuario) session.getAttribute("usuario");
		}
		return usuario;
	}

	/**
	 * Verifica se possui uma sessão aberta
	 */
	public static boolean isOpenSession() {
		HttpSession session = FacesUtil.obterSessao();
		return ((session != null) ? true : false);
	}

	/**
	 * Atualiza o usuario na sessão
	 * 
	 * @param usuario
	 */
	public static void updateUserSession(Usuario usuario) {
		HttpSession session = FacesUtil.obterSessao();
		if (session != null) {
			session.removeAttribute("usuario");
			session.setAttribute("usuario", usuario);
		}
	}
}
